iT邦幫忙

2024 iThome 鐵人賽

DAY 1
0

大家好,我是一個學Java不到兩年的菜鳥工程師。為甚麼學了一年多我還是要堅稱菜鳥呢?這是因為Java的世界實在是太大了。我想即使花了四五年,也依然會對Java的許多功能感到十分陌生吧。

之所以會參與這次的鐵人賽,主要也是被朋友糾團,因為最低是三人組團但是剛好缺一人,於是我就補了進去。那話又說回來了,既然都參與了,我也覺得這是個好機會,可以整理自己這一年多來學習Java、Spring的種種知識,大到軟體設計的概念,小到怎麼使用一個API,都是在我這次鐵人賽會談到的範圍,這30天內不只會提到SpringBoot、也會提到Java的一些基本概念,但不是從頭學。通常是一些觀念的補充,幫助你在基本的Coding外,對自己使用的工具有更多的一層認識。

這篇文章會適合什麼人?

  1. 寫過、或至少聽過Java的人。
  2. 想要學習更多有關Java知識的人。
  3. 希望可以了解更多SpringBoot功能的人。
  4. 周末有空的人。

如果你不屬於以上四類人,那建議各位朋友可以上一頁離開了,去做些真正讓你開心的事吧。人生寶貴,何必與自己的髮線過不去呢?(笑

還沒走?好,那開始吧。

簡介

Java作為一名老前輩,目前已經有25年的歷史,也誕生出許多應用程式。Java的熱門程度,你可以參考這張圖。
https://www.statista.com/statistics/793628/worldwide-developer-survey-most-used-languages/
在2024年,最常被開發者使用的程式語言排行中,撇除非後端的資料,Java被使用的比率中僅小於Python,而Python近年來的崛起主要與AI、機器學習有關,由此可見,Java作為一個古老的語言依然保持著強大的競爭力。
它的主要優點如下:

  1. 生態的成熟:
    選擇一個古老且熱門的程式語言有許多好處,其中一項便是豐富的套件與社群資源,作為一名軟體開發者,有許多與你一樣的開發者也許早你一步遇見了某個你正困擾的難題,並給出了寫法。而你只需要照搬,就可以達到你的目的,這很大的一個幅度減少了面對不確定性的試錯成本。
  2. 向下相容性:
    在多年Oracle(Java的公司)的開發者的努力之下,Java 有多個版本的JDK,從Java1.8到Java21版,你會在業界看到各種不同版本的Java,小弟我待的前公司甚至在部分專案中使用Java 7,不過那是另外一個故事。
    總地來說,Java提供了高度的向下相容,針對已存在的企業級應用提供了相當好的支援。
  3. 強型別語言:
    在我過去的公司,曾經有遇到這樣的問題。情境是這樣的,程式中有一段針對手續費的處理是這樣的。
...
HashMap<String,Object> map = merchantService.getWeeklyStatistic();
String merchantFeeInWeek = ((Integer) map.get("fee")).toString();

前面的map沒有指定value的型別。本來這段程式碼雖然不好看,但因為種種原因沒有人主動去改它,直到有一天金額高到超出預期時,這段就爆出錯誤了,原因是因為懶惰交給自動型別轉換所造成的問題,double無法使用Integer的強轉型導致。自動處理麻煩的型別本身是件好事,但我的看法是,如果一開始是可以被明確定義的,那就不該讓它模糊處理。即使現在本人我正在寫Groovy,我也依然盡可能的把類別定義清楚,也許比較麻煩,但我認為這是必要的。

以上,是我小小工程師對Java這門語言的一些小感想,若有不同的意見也歡迎在下方討論,那麼我們明天再會吧。


下一篇
[Day 2] Call by value、Call by reference?=與==與equals的混亂圓舞曲!
系列文
週日時在做什麼?有沒有空?可以來寫SpringBoot嗎?30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言